package interpreter_pattern.ex2;

/**
 * @author 申书航
 * @version 1.0
 * 表达式的“与”运算实现类
 */
public class AndExpression extends Expression {

    private final Expression one;

    private final Expression two;

    /**
     * 构造方法，接受两个表达式
     * @param one 第一个表达式
     * @param two 第二个表达式
     */
    public AndExpression(Expression one, Expression two) {
        this.one = one;
        this.two = two;
    }

    /**
     * 解释方法，返回两个表达式的与运算结果
     * @param ctx 上下文字符串
     * @return 如果两个表达式都为真，则返回真；否则返回假
     */
    @Override
    public boolean interpret(String ctx) {
        return one.interpret(ctx) && two.interpret(ctx);
    }
}
